23

» WarCraft 3 / Стаки

Похожие вопросы:

ответ
~16GB:
JackFastGame,
оно не работает, придётся делать много уровневую абилку во всеми вариантами скорости, и самом у подсчитывать её
ответ
Astra, юзай баг с айтемами
не лагает
не требует создания овер дофига абилок (нужен только 1 предмет)
легко удаляется
лучше только мемхак
ответ
на 26 патче это без тригов невозможно
с тригами - система выдачи баффов и скрытые спеллбуки с нужными способностями и их выдача нужным юнитам на нужное время
также в карте замок скиби есть аура, эффекты которой суммируются, но она опять таки триггерная
ответ
Делать триггерные аналоги, это орбы, они на уровне движка
Есть там некоторые типы эффектов, которые стакаются
xgm.guru/p/wc3/attackmod в общем вот
ответ
easypeasy, не юзать рунные браслеты, а юзать благословение элуны, она стакается, все резисты работают в порядке преобретерия с уменьшающейся эффективностью, у героев 25% резиста к магии, он будет самым первым всегда, далее резист считается от оставшихся 75% урона.

23

» WarCraft 3 / Слетает переменная

Похожие вопросы:

ответ
Применяй permanent при добавлении абилки юниту. Когда абилку удалишь, эффект исчезнет. При морфе перманентные абилки останутся. На спеллбук также работает, но надо перманентить сам спеллбук и вложенные в него абилки.
ответ
zlowar:
То есть дебаф должен всегда обновляться.)
Зачем ты делаешь триггерный дебафф? В дефолте так устроено, что дебафф заменяется, так вешай же дефолтно
ответ
MoreDoPass, для этого и нужны массивы, чтобы было MUI
  1. первый триггер сохраняет все нужные данные на один общий индекс, например PlantmineCount, и увеличивает этот индекс на один.
  2. второй триггер каждые 0,0Х секунд пробегается по массиву от нуля до PlantmineCount, проверяет расстояние и если оно подходит, делает нужные действия. После этого, чтобы тот же элемент не обрабатывался заново, нужно заменить его во всех массивах на последний и уменьшить PlantmineCount на 1. И счетчик цикла тоже уменьшить на 1, иначе этот последний элемент будет пропущен тк индекс по циклу уйдет дальше.

23

» WarCraft 3 / Расположение разрушаемый декораций друг на друге

Похожие вопросы:

ответ
~8gabriel8:
Потом над блоками надо поставить невидимые платформы и поднимать/опускать кнопками Ctrl+Shift+PgUp/PgDn.
PrincePhoenix, он всё равно лучший ответ не выбирает, бот такие не обрабатывает.

23

» WarCraft 3 / Как не бить союзников

Принятый ответ
Похожие вопросы:

ответ
Событие: боевая единица атакован -
Условия: владелец атакованного и атаковавшего союзники
Действия: Боевая единица- приказ без указания цели атаковавший отставить.
Это так примитив, можно так же извратится с событием получает урон и лечить юнита на кол-во полученного урона.
ответ
Эм есть и другая аура лечение для союзников без заклинание. Это "Дух целитель" рав-код Aoar

23

» WarCraft 3 / Заголовок

Похожие вопросы:

ответ
Это баг варика. Когда ты используешь несколько диалогов и показываешь их подряд, название Title надо каждый раз заново создавать. Если бы у тебя был один диалог и ты бы его показывал несколько раз подряд - заголовок сохраниться.
Могу посоветовать при пересоздании запускать триггер dialog повторно.
ответ
8gabriel8:
Тип передвижения на Нет ставишь?
Хотя, если здание, значит прямоугольная карта путей по игровой сетке, а не любое местоположение. Тип передвижения в этом случае не важен.
Я думаю кроме нас тут уже больше никто не напишет поэтому я закрою вопрос, спасибо за внимание и ответы.
ответ
Lesnoi troll:
Думал сделать двойную атаку с определенным шансом, типа герой делает сразу 2 выстрела вместо 1. Потом на ум пришла другая идея: когда герой прокачивает свою пассивную способность, около него появляется дамми юнит с атакой. И он должен атаковать вражеского юнита, когда этого делает и сам герой. Тоесть он не то что появляется и автоатачит ближайших врагов, а атакует однократно

Если бы хотел, сделал бы урон дамми больше с каждым уровнем, но я не умею такое провернуть, а вы не обязаны делать все за меня. Поэтому прошу лишь подсказок
Вот тебе костыль на основе техники. Даешь ауру, которая изначально не имеет целей, потом при изучении техники прикручиваешь грейд ауры. Триггеры ловят баффы аур, и создаешь даммиков, стирая/добавляя старых.
ответ
Через мемхак, либо через кастом фреймы в рефорджевых патчах
На 126 гуи такого не сделать

23

» WarCraft 3 / Лагает спавн юнитов

Похожие вопросы:

ответ
XGM Bot:
Похожие вопросы:

ответ
GF RaiseD:
Я знаю только один способ избавления от утечек - писать код без них.Тебе нужен кто-то знающий игровые скрипты или злосчастный Jass. Иначе уровень неопределённости вопроса не позволит подсказать что-то дельное.

ответ
Причина: причин было много, а я искал лишь одну
Самыми распространёнными оказались элементарные ошибки в коде, отсутствие параметров, параметры не того типа данных (привет динамическая типизация) или лишние параметры, из за чего происходили "рандомные рассинхроны при обрыве потока"
Огромное спасибо пользователю prog, что откликнулся и смог найти ошибки, а нашёл он их при помощи языкового сервера sumneko lua для VScode

23

» Администрация XGM / Переезд проектов

Похожие вопросы:

ответ
То же самое было на 3 уровне, но это было до переезда. Дойди до 4 уровня и смело создавай проект.

23

» WarCraft 3 / Косяки mdlvis

Похожие вопросы:

ответ
В редакторе скелета
ответ
Галочка "однократно" стоит?
там в мдл визе под названием анимациии
скачал, галочки нет. Поставь, тогда анимация будет останавливаться на последнем кадре.

23

» WarCraft 3 / Помощ с условием

Похожие вопросы:

ответ
Объясню, почему я удалил код: после проведённого за кодом времени, я понял, что сильно погорячился, задав такой глупый вопрос. Стоило отдохнуть, проветрить голову, и решение нашлось. Тем, кто столкнулся с хоть самую малость, но похожей проблемой, дам совет: всегда проверяйте соответствия заклинаний, написанных в коде jass (CTRL + D, если кто не знает, как узнать id заклинания) и ,конечно, сам синтаксис. Также посоветую не утраивать "свалку" в коде, как это сделал я. В общем, если кому интересно, как я решил проблему, пишите - расскажу или даже помогу если у вас она схожая.(Всё дело во внимательности)...
Сброшу код триггера таким, каким я его хотел видеть изначально:
function MU_Check_lvl_four takes nothing returns boolean
    if ( not ( GetUnitAbilityLevelSwapped('A011', udg_Akame_Killer) == 4 ) ) then
        return false
    endif
    return true
endfunction

function MU_Check_lvl_three takes nothing returns boolean
    if ( not ( GetUnitAbilityLevelSwapped('A011', udg_Akame_Killer) == 3 ) ) then
        return false
    endif
    return true
endfunction

function MU_Check_lvl_two takes nothing returns boolean
    if ( not ( GetUnitAbilityLevelSwapped('A011', udg_Akame_Killer) == 2 ) ) then
        return false
    endif
    return true
endfunction

function MU_Check_lvl_one takes nothing returns boolean
    if ( not ( GetUnitAbilityLevelSwapped('A011', udg_Akame_Killer) == 1 ) ) then
        return false
    endif
    return true
endfunction

function MU_Second_Conditions takes nothing returns boolean
    if ( not ( UnitHasBuffBJ(GetEventDamageSource(), 'B008') == true ) ) then
        return false
    endif
    if ( not ( GetEventDamageSource() == udg_Akame_Killer ) ) then
        return false
    endif
    return true
endfunction

function MU_Start_Conditions takes nothing returns boolean
    if ( not ( UnitHasBuffBJ(GetAttacker(), 'B008') == true ) ) then
        return false
    endif
    if ( not ( GetAttacker() == udg_Akame_Killer ) ) then
        return false
    endif
    return true
endfunction

function Trig_MU_Conditions takes nothing returns boolean
    if ( not MU_Start_Conditions() ) then
        return false
    endif
    return true
endfunction

function MU_Venum_Check takes nothing returns boolean
    if ( not ( udg_MU_Venum_counter == 2 ) ) then
        return false
    endif
    return true
endfunction

function MU_del takes nothing returns nothing 
    if ( MU_Check_lvl_one() ) then
        call SetPlayerAbilityAvailableBJ( true, 'A00X', GetOwningPlayer(GetEventDamageSource()) )
        call UnitRemoveAbilityBJ( 'A00X', GetEventDamageSource() )
    else
        if ( MU_Check_lvl_two() ) then
            call SetPlayerAbilityAvailableBJ( true, 'A00U', GetOwningPlayer(GetEventDamageSource()) )
            call UnitRemoveAbilityBJ( 'A00U', GetEventDamageSource() )
        else
            if ( MU_Check_lvl_three() ) then
                call SetPlayerAbilityAvailableBJ( true, 'A00Y', GetOwningPlayer(GetEventDamageSource()) )
                call UnitRemoveAbilityBJ( 'A00Y', GetEventDamageSource() )
            else
                if ( MU_Check_lvl_four() ) then
                    call SetPlayerAbilityAvailableBJ( true, 'A013', GetOwningPlayer(GetEventDamageSource()) )
                    call UnitRemoveAbilityBJ( 'A013', GetEventDamageSource() )
                else
                    call DoNothing(  )
                endif
            endif
        endif
    endif
endfunction


function Trig_MU_Actions takes nothing returns nothing
    call DestroyTrigger(udg_MU_trig)
    set udg_MU_Venum_counter = GetRandomInt(1, 5)
    set udg_MU_TG = GetAttackedUnitBJ()
    if ( MU_Venum_Check() ) then
        if ( MU_Check_lvl_one() ) then
        call UnitAddAbilityBJ( 'A00X', udg_Akame_Killer )
        call SetPlayerAbilityAvailableBJ( false, 'A00X', GetOwningPlayer(udg_Akame_Killer) )
    else
        if ( MU_Check_lvl_two() ) then
            call UnitAddAbilityBJ( 'A00U', udg_Akame_Killer )
            call SetPlayerAbilityAvailableBJ( false, 'A00U', GetOwningPlayer(udg_Akame_Killer) )
        else
            if ( MU_Check_lvl_three() ) then
                call UnitAddAbilityBJ( 'A00Y', udg_Akame_Killer )
                call SetPlayerAbilityAvailableBJ( false, 'A00Y', GetOwningPlayer(udg_Akame_Killer) )
            else
                if ( MU_Check_lvl_four() ) then
                    call UnitAddAbilityBJ( 'A013', udg_Akame_Killer )
                    call SetPlayerAbilityAvailableBJ( false, 'A013', GetOwningPlayer(udg_Akame_Killer) )
                else
                    call DoNothing(  )
                endif
            endif
        endif
    endif
    set udg_MU_trig = CreateTrigger()
    call TriggerRegisterUnitEvent( udg_MU_trig, udg_MU_TG, EVENT_UNIT_DAMAGED )
    call TriggerAddCondition( udg_MU_trig, Condition( function MU_Second_Conditions ) )
    call TriggerAddAction( udg_MU_trig, function MU_del )
    else
        call DoNothing(  )
    endif
endfunction

//===========================================================================
function InitTrig_MU takes nothing returns nothing
    set gg_trg_MU = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( gg_trg_MU, EVENT_PLAYER_UNIT_ATTACKED )
    call TriggerAddCondition( gg_trg_MU, Condition( function Trig_MU_Conditions ) )
    call TriggerAddAction( gg_trg_MU, function Trig_MU_Actions )
endfunction
Суть триггера:
Имеется способность с четырьмя уровнями. На каждом уровне урон способности разный, а шанс срабатывания всегда 25%. При атаке герой, имеющий такую способность имеет шанс (25%) на отравление противника.
Переменная udg_Akame_killer равносильна GetEventDamageSource()
P.S. Возможно кому-то даже пригодится этот код... Сделан полнейшим неумехой в плане jass, так что не судите строго!
ответ
Нет такой функции запустить
вы классный
причем это недалеко от включения. либо вы очень невнимательны, либо очень ленивы
ответ
~8gabriel8:
Пока нет желания разбираться, что у тебя так, а что не так. Но вижу, что переменная Window не назначена окну, а ещё как бы создаются в цикле одновременно 10 окон, которые потом все одновременно ждут 50 секунд. Вот скрин действий триггера вместо двух твоих, секунда ожидания поставлена для того, чтобы увидеть пропадание окна таймера.
ответ
~8gabriel8:
Довольно тяжело в этом разобраться, ты думаешь о том, что тебе нужно, но не всё договариваешь, а залезть в твою голову не могу. Во-первых, нумерация массива начинается с 0, то есть размерность переменной 1 представляет два массива - переменная[0] и переменная[1], но у тебя переменная[0] вроде не задействована. Во-вторых, на первом скрине у тебя цикл по А от 2 до 10, а в пояснении пишешь, что стандартные резолюции с 1 по 8, но в таком случае обработка идёт с 1 по 9 для А-1. Ошибка ли это, либо дальше 9 иначе обрабатывается, непонятно, скрин обрезан. В-третьих, хотя не уверен, что проблема в этом, но может быть обработку остальных действий вызывает очистка диалога, попробуй переместить If/Then/Else первой кнопки в самый низ, чтобы очистка диалога срабатывала последней. В-четвёртых, создание юнита создаёт утечку группы, надо после этого действия удалять последнюю созданную группу.
Вроде такой custom script: call DestroyGroup(Last Created Unit Group).

23

» WarCraft 3 / урон деревьям

Похожие вопросы:

ответ
там есть куча статей на эту тему + пример на гуи от меня любимого
ответ
Баг абилки
исправляется с помощью тригга - добавляем анимационный таг, счетчик для количества ударов и даем руну на морф с другим типом атаки\бонус к урону\...
само собой абилку заменяем другой, можно на основе канала
ответ
спелл сова у ночных эльфов
ответ
в доте фрог решил просто превращением тини в модеьл с деревом, возможно нормального решения просто нет
ответ
Причина: причин было много, а я искал лишь одну
Самыми распространёнными оказались элементарные ошибки в коде, отсутствие параметров, параметры не того типа данных (привет динамическая типизация) или лишние параметры, из за чего происходили "рандомные рассинхроны при обрыве потока"
Огромное спасибо пользователю prog, что откликнулся и смог найти ошибки, а нашёл он их при помощи языкового сервера sumneko lua для VScode

23

» WarCraft 3 / Warcraft 3 Reforged. Модели

Похожие вопросы:

ответ
Читал новое пользовательские соглашение? Потом разжевывали на одной из тем по патчам рефорджа. Близзарды перестраховались, и теперь низя в карту контент пихать, который не твой или свободно распростроняемый, в противном случае хоть 1 жалоба на твою карту - бан, любой мудак которому че-то не понравится может написать близардам, они не будут разбираться он хозяин контента или нет.
Правообладатели нарут и прочих аниме прав тебе никогда не дадут, даже разговаривать не будут, только юр. Лицаи только много денег, бомжи вроде нас с тобой им не интересны. Но при этом за спасибо тебе никто не даст прав делать карту в которой все бы бесплатно играли.
ответ
Лучший способ избежать потери информации ввиду такого рода глюков в будущем - это регулярное создание резервных копий. Желательно одновременно на компьютере (в архиве .7z, чтобы избежать разного рода "авто-детектов" наподобие того, который использует рефандед при деинсталляции) и еще где-нибудь, к примеру, на яндекс диске, или на внешнем жестком диске. А еще лучше, если этих "где-нибудь" несколько. К примеру, мой варкрафт 1.26 лежит на всех доступных мне внешних носителях информации, обладающих достаточной вместимостью. И потерять и его могу, только если они все навернутся одновременно.

23

» WarCraft 3 / Проблемы с работой триггеров

Похожие вопросы:

ответ
Держи. Чтобы проверить нажми ESC в игре.
раскрыть
потребовалось полторы минуты
ответ
Проблема решилась, после соединения с администратором карта заработала и сохранилась. И на следующей карте соединения уже нет. Спасибо.
ответ
А группы в массиве CreepsGroup созданы? Нужно либо создавать группы при инициализации, проходясь циклом по массиву, либо в константах указать "размер" массива, и тогда они будут сами созданы. То есть нужно 12 групп -- ставишь размер 12, группы будут созданы в ячейках с 0 по 11.
ответ
Не сов сем по теме, но близко - вот такое можно реализовать на новых функциях 1.31
Увы, полноценного инвентаря на аналогичных функциях пока не выкладывали в общий доступ, каждый пилит себе свою версию.
ответ
если ты создаешь нейтрально-враждебных то нужно им в игровых константах менять значения
пошамань с этими значениями и все норм будет, ну а если у тебя монстры под контролем других игроков а не нейтралов, то тогда не знаю даже

guard distance - это расстояние на котором крипы агряться
guard return distance - это на какое расстояние мобы могут отходить от место их создания, если они отошли на 1000 они возвращаются обратно
guard return time - типо тоже самое что с расстоянием, только время
остальное вроде тебе не надо вообще

23

» WarCraft 3 / Как скрыть кнопку строительства?

Похожие вопросы:

ответ
Видимо єта кнопка тесно спряжена с более низкими слоями игры (чит. "hardcoded"). Похоже, что скрыть её нельзя. Я могу только посоветовать вернуться назад и посмотреть, что можно сделать по-другому, чтобы не приходилось скрывать кнопку.
Melissa:
Units\commandstrigs.txt
Units\commandfunc.txt
Порыть там надо, во всяком случае стандартные приказы, иконки и клавиши к ним там прописаны.
(естесственно нужно импоритровать эти изменённые файлики в карту)
Я пробовал прописывать кнопке неадекватные значения позиции кнопки и пиктограммы, но ничего не вышло — игра подставляет свои значения.

23

» WarCraft 3 / Объединение способностей

Похожие вопросы:

ответ
сперва идём сюда
учим основы...

да сделать такое можно...
при использовании способности "звездопад"... создаём даммика которому приказываем использовать предметную способность распространения порчи...
ответ
Лимит операций, обычно это беда настигает заядлых гуишников.
На jass обычно нету таких проблем.
Создайте таймер с периодом .00 сек и запускайте им функции инициализации триггеров.
функция типа InitTrig_Имя триггера - это функция инициализации триггера, она вызывается из функции InitCustomTriggers, но если этих вызовов очень много то функция упирается в лимит операций и поток завершается так и не создав все триггеры.
ответ
вот смотри тут раздел телепортация
так трудно самому проверить и сравнить? эта штука отряд в плотную кучку собирает или наоборот

23

» WarCraft 3 / Как сделать геройское свечение?

Похожие вопросы:

ответ
Загрузилось наконец. Посмотрел. Это "крепление ориджин" косячит.
Исправил.
Хозяин Миров, годится?
В положительном случае выбери ответ на вопрос.

23

» WarCraft 3 / Крашится модель

Похожие вопросы:

ответ
ну редактор тебе ведь написал, что файл поврежден. если даже он работает в игре, это еще не значит, что с ним все в порядке.
если же эдитор на все подряд ругается - другое дело, снести и поставить опять
ответ
Причины могут быть разные. Неиспользуемый материал/текстура, битая текстура, не прикреплены точки к костям.
ответ
MPQ Master'ом открывается
там и искать нужную модель и удалять
ответ
~8gabriel8:
Достаточно низкие настройки?
Увеличил размер с 100х100 до 128х128 и пересчитал границы у модели:

23

» WarCraft 3 / Редактор кода

Принятый ответ
Похожие вопросы:

ответ
www.wc3c.net/tools/specs тут есть
NEW Frozen Throne expansion pack format of "war3map.w3u / w3t / w3b / w3d / w3a / w3h / w3q" The object data files (thanks PitzerMike):
ответ
но я так и не нашёл в каком чате он это показывал
ответ
Редактор ландшафта -> Файл -> Экспортировать скрипт карты. Пишешь небольшой парсер, который отсекает всё до первого триггера, затем каждый триггер в отдельный файл, затем всё после последнего триггера в отдельный файл.
ответ
Я использую Visual Code Studio, тоже есть свои минусы, но лучше не нашел для Jass

23

» WarCraft 3 / общий вопрос про jass

Похожие вопросы:

ответ
в качестве параметра Condition должна быть функция которая takes nothing returns boolean
для ForGroupBJ должна быть функция takes nothing returns nothing
смотри гуишные примеры и читай статьи

23

» WarCraft 3 / помогите вспомнить карту

Похожие вопросы:

ответ
8gabriel8, точно. Их там нет. Я перепутал. Не в константах, а в интерфейсе.
Текст - Общий - Жульничество разрешено
ответ
закрыт по таймауту
ответ
Eota: Exodus
оригинальный автор DarnYak
поищи его последнюю карту...
помню раньше ещё был оф. сайт... но он вроде упал...
поиграть в эту карту еще. Никто из друзей и знакомых не помнит, но не приснилась же мне эта карта!
не приснилась... хорошая карта, но толпой играть слишком легко...

P.S. а нет, сайт ещё жив, кажется

23

» WarCraft 3 / Враг на миникарте

Похожие вопросы:

ответ
с погоней всё легко(если ты конечно не хочешь чтобы аи прошёл Тест Тьюринга)
если юнит врага видим то запоминаем его координаты и идём к нему
если юнит врага исчез из области видимости (ушёл в туман/инвиз) то идём к последнему местонахождению врага(наши запомненные координаты)
стоит совместить это с проверкой на смерть цели погони(чтобы не бежать к трупу) и с проверкой на угрозу (чтобы не залезть под фонтан случайно)
добавить кода и специй по вкусу
ответ
~8gabriel8:
Это пинг, но ты указал, что он через Alt, чего прежде не делал, потому и удивился. Ну вот всех врагов на карте выбираешь и пинг им ставишь)